<%--
    Document   : edituser
    Created on : 15.05.2011, 17:22:34
    Author     : 647_2
--%>

<%@page import="Entities.UserGroup"%>
<%@page import="Access.UserGroupsRemote"%>
<%@page import="ExtEntities.VeryExtUser"%>
<%@page import="Access.UsersRemote"%>
<%@page import="java.text.SimpleDateFormat"%>
<%@page import="java.util.Locale"%>
<%@page import="java.text.DateFormat"%>
<%@page import="ExtEntities.ExtComposition"%>
<%@page import="Entities.SoundRecordingCompany"%>
<%@page import="ExtEntities.VeryExtAlbum"%>
<%@page import="Access.AlbumsRemote"%>
<%@page import="java.text.spi.DateFormatProvider"%>
<%@page import="java.sql.Date"%>
<%@page import="Entities.URL"%>
<%@page import="Access.URLsRemote"%>
<%@page import="Access.ExecutorsWithInstrumentRemote"%>
<%@page import="Entities.ExecutorWithInstrument"%>
<%@page import="Entities.Genre"%>
<%@page import="Access.GenresRemote"%>
<%@page import="Access.GroupsRemote"%>
<%@page import="Entities.Group"%>
<%@page import="java.util.LinkedList"%>
<%@page import="params.Params"%>
<%@page import="Access.CompositionsRemote"%>
<%@page import="javax.naming.InitialContext"%>
<%@page import="ExtEntities.VeryExtComposition"%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title><% out.print("Правка/добавление пользователя - " + Params.getSiteName()); %></title>
    </head>
    <body>
        <% out.print(Params.getHeader("Правка/добавление пользователя")); %>

        <%
                   out.println("<a href=\"" + Params.getSiteURL() + "edituser.jsp?mode=0\">[добавить нового пользователя]</a> ");
                   out.println("<a href=\"" + request.getHeader("referer") + "\">[на предыдущую страницу]</a><br /><br />");

                   //while(request.getHeaderNames().hasMoreElements()){
                   //    out.println(request.getHeaderNames().nextElement() + "<br />");
                   //    request.getHeaderNames().
                   //}

                   InitialContext ic = new InitialContext();
                   UsersRemote us = (UsersRemote)ic.lookup(UsersRemote.class.getName());
                   UserGroupsRemote ug = (UserGroupsRemote)ic.lookup(UserGroupsRemote.class.getName());

                   int mode = 0;
                   int ID = 0;
                   int ugID = 0;

                   String name = "";
                   String pass = "";
                   String mail = "";


                   //ID = Integer.parseInt(request.getParameter("ID"));
                   mode = Integer.parseInt(request.getParameter("mode"));

                   switch(mode){

                       case 6: //удаление пользователя

                           if (request.getParameter("ID") != null){

                             ID = Integer.parseInt(request.getParameter("ID"));

                             if (us.DeleteUser(ID)){
                                out.println("Пользователь успешно удалён! А жаль :(");
                             } else {
                                out.println("Пользователь не удалён!");
                             }
                           } else {
                              out.println("Неверные параметры");
                           }
                           break;

                       case 5: //удаление группы

                             if ((request.getParameter("ID") != null) && (request.getParameter("ugID") != null)){

                             ID = Integer.parseInt(request.getParameter("ID"));
                             ugID = Integer.parseInt(request.getParameter("ugID"));

                             if (us.DeleteUserOfGroup(ID, ugID)){
                                out.println("Пользователь успешно удалён из группы!");
                             } else {
                                out.println("Пользователь не удалён из группы!");
                             }
                             } else {
                                 out.println("Неверные параметры");
                             }
                           break;

                         case 4: //добавление группы

                             if ((request.getParameter("ID") != null) && (request.getParameter("ugID") != null)){

                             ID = Integer.parseInt(request.getParameter("ID"));
                             ugID = Integer.parseInt(request.getParameter("ugID"));

                             if (us.AddUserToGroup(ID, ugID)){
                                out.println("Пользователь успешно добавлен в группу!");
                             } else {
                                out.println("Пользователь не добавлен в группу!");
                             }
                             } else {
                                 out.println("Неверные параметры");
                             }
                           break;

                         case 3: //принятие данных правки

                              if ((request.getParameter("name") != null) && (request.getParameter("pass") != null) && (request.getParameter("mail") != null) && (request.getParameter("ID") != null)){

                              name = request.getParameter("name");
                              name = new String(name.getBytes("ISO-8859-1"), "UTF-8");

                              pass = request.getParameter("pass");
                              pass = new String(pass.getBytes("ISO-8859-1"), "UTF-8");

                              mail = request.getParameter("pass");
                              mail = new String(mail.getBytes("ISO-8859-1"), "UTF-8");

                              if (us.UpdateUser(ID, name, mail, pass)){
                                    out.println("Пользователь обновлён!");
                              } else {
                                    out.println("Пользователь не обновлён!");
                              }
                              } else {
                                 out.println("Неверные параметры");
                             }
                            break;

                         case 2: //страница правки (несколько блоков)

                             if (request.getParameter("ID") != null){

                             ID = Integer.parseInt(request.getParameter("ID"));

                             VeryExtUser veu = us.getFullUser(ID);

                             if (veu != null){

                             //Блок правки данных пользователя
                             out.println("Правка данных об альбоме: <br />");
                             out.println("<form action=\"" + Params.getSiteURL() + "editalbum.jsp?mode=3&ID=" + veu.getID() + "\" method=\"POST\">");
                             out.println("Имя пользователя: <input type=\"text\" name=\"name\" value=\"" + veu.getName() + "\"/><br />");
                             out.println("Пароль: <input type=\"text\" name=\"pass\" value=\"" + veu.getPass() + "\"/><br />");
                             out.println("Электронная почта: <input type=\"text\" name=\"pass\" value=\"" + veu.getMail() + "\"/><br />");
                             out.println("<input type=\"submit\" value=\"Править\"/>");
                             out.println("</form>");

                             //Добавление/удаление пользовательской группы

                             LinkedList<UserGroup> groups = ug.getAllUserGroups();

                             if (groups != null){

                             out.println("<form action=\"" + Params.getSiteURL() + "edituser.jsp?mode=4&ID=" + veu.getID() + "\" method=\"POST\">");
                             out.print("Добавление группы: <select name=\"ugID\">");

                             for (int i = 0; i < groups.size(); i++){
                                   out.print("<option value=\"" + groups.get(i).getIDAsInt() + "\">" + groups.get(i).get_name() + "</option>");
                             }

                             out.print("</select>");
                             out.println("<input type=\"submit\" value=\"Добавить\"/>");
                             out.println("</form>");

                             }

                             out.println("<form action=\"" + Params.getSiteURL() + "edituser.jsp?mode=5&ID=" + veu.getID() + "\" method=\"POST\">");
                             out.print("Удаление группы: <select name=\"ugID\">");

                             for (int i = 0; i < veu.getUsergroups().size(); i++){
                                   out.print("<option value=\"" + veu.getUsergroups().get(i).getIDAsInt() + "\">" + veu.getUsergroups().get(i).get_name() + "</option>");
                             }

                             out.print("</select>");
                             out.println("<input type=\"submit\" value=\"Удалить\"/>");
                             out.println("</form>");

                             out.println("<a href=\"" + Params.getSiteURL() + "edituser.jsp?mode=6&ID=" + veu.getID() + "\">[удалить пользователя]</a>");
                             } else {
                                 out.println("Данный пользователь не содержится в базе");
                             }
                             } else {
                                 out.println("Неверные параметры");
                             }
                            break;

                          case 1: //обработчик добавления

                              if ((request.getParameter("name") != null) && (request.getParameter("pass") != null) && (request.getParameter("mail") != null)){

                              name = request.getParameter("name");
                              name = new String(name.getBytes("ISO-8859-1"), "UTF-8");

                              pass = request.getParameter("pass");
                              pass = new String(pass.getBytes("ISO-8859-1"), "UTF-8");

                              mail = request.getParameter("pass");
                              mail = new String(mail.getBytes("ISO-8859-1"), "UTF-8");

                              if (us.AddUser(name, mail, pass)){
                                    out.println("Пользователь добавлен успешно!");
                              } else {
                                    out.println("Пользователь не добавлен!");
                              }
                              } else {
                                 out.println("Неверные параметры");
                             }
                              break;

                          case 0: //страница добавления
                          default:
                              out.println("<form action=\"" + Params.getSiteURL() + "edituser.jsp?mode=1\" method=\"POST\">");
                              out.println("Имя пользователя: <input type=\"text\" name=\"name\" /><br />");
                              out.println("Пароль: <input type=\"text\" name=\"pass\" /><br />");
                              out.println("Электронная почта: <input type=\"text\" name=\"mail\" /><br />");
                              out.println("<input type=\"submit\" value=\"Добавить\"/>");
                              out.println("</form>");

                   }


        %>
        <% out.print(Params.getFooter()); %>
    </body>
</html>
